package com.team2.insulatingtools.modular.tools.service;

import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
import com.team2.insulatingtools.modular.tools.dto.SetKeeperDto;
import com.team2.insulatingtools.modular.tools.dto.ToolKeeperLogDto;
import com.team2.insulatingtools.modular.tools.entity.Tools;
import com.team2.insulatingtools.modular.tools.pojo.request.ReminderRequest;
import com.team2.insulatingtools.modular.tools.pojo.request.ToolsRequest;
import com.baomidou.mybatisplus.extension.service.IService;
import com.team2.insulatingtools.modular.tools.pojo.response.ToolReminderResponse;

import java.util.List;

/**
 * 绝缘工具  服务类
 *
 * @author team2
 * @date 2023/04/03 09:48
 */
public interface ToolsService extends IService<Tools> {

    /**
     * 新增
     *
     * @param toolsRequest 请求参数
     * @author team2
     * @date 2023/04/03 09:48
     */
    ResponseData<?> add(ToolsRequest toolsRequest);

    /**
     * 删除
     *
     * @param toolsRequest 请求参数
     * @author vcz
     * @date 2023/04/04 16:58
     */
    ResponseData<?> del(ToolsRequest toolsRequest);

    /**
     * 编辑
     *
     * @param toolsRequest 请求参数
     * @author vcz
     * @date 2023/04/04 16:58
     */
    void edit(ToolsRequest toolsRequest);

    /**
     * 查询详情
     *
     * @param toolsRequest 请求参数
     * @author vcz
     * @date 2023/04/04 16:58
     */
    Tools detail(ToolsRequest toolsRequest);

    /**
     * 获取列表
     *
     * @param toolsRequest 请求参数
     * @return List<Tools>   返回结果
     * @author vcz
     * @date 2023/04/04 16:58
     */
    List<Tools> findList(ToolsRequest toolsRequest);

    /**
     * 获取列表（带分页）
     *
     * @param toolsRequest 请求参数
     * @return PageResult<Tools>   返回结果
     * @author vcz
     * @date 2023/04/04 16:58
     */
    PageResult<Tools> findPage(ToolsRequest toolsRequest);

    ResponseData changeKeeper(ToolsRequest toolsRequest);

//    ResponseData selByWorkshop(String speciality ,String workshopName,String groupName);
    ResponseData selByOrgName(String speciality ,String orgName);

//    ResponseData SelByWorkshopAndTools(String speciality ,String workshopName,String groupName, String categoryName);
    ResponseData SelByOrgNameAndTools(String speciality ,String orgName, String categoryName);

    //    ResponseData changeKeeperBatch(int id,String keeper);
    ResponseData changeKeeperBatch(SetKeeperDto dto);

    ResponseData showKeeperLog(int tid);

    /**
     * 获取过期提醒
     *
     * @return PageResult<ToolDetail>   返回结果
     * @author team2
     * @date 2023/04/03 09:48
     */
    List<ToolReminderResponse> getToolAboutToExpire(ReminderRequest reminderRequest);

    /**
     * 新增多个工具
     *
     * @param toolsRequest 请求参数
     */
    ResponseData<?> addBatch(ToolsRequest toolsRequest,int quotaCount);

    /**
     *
     * @param toolId
     * @param specification
     * @param keeper
     * @param status
     */
    void addToolLog( int toolId,String specification,String keeper,int status);

    /**
     * 批量删除
     * @param idList
     */
    void deleteBatchByToolIdList(List<Integer> idList);

}
